package com.example.bicycle.domain.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;

/**
 * 用户类型枚举
 * 对应PostgreSQL的user_type_enum类型
 */
public enum UserTypeEnum {
    NORMAL("normal", "普通用户"),
    ADMIN("admin", "管理员");

    @EnumValue  // MyBatis-Plus会使用这个值写入数据库
    @JsonValue  // JSON序列化时使用这个值
    private final String value;
    
    private final String description;

    UserTypeEnum(String value, String description) {
        this.value = value;
        this.description = description;
    }

    public String getValue() {
        return value;
    }

    public String getDescription() {
        return description;
    }

    /**
     * 从字符串值获取枚举
     */
    public static UserTypeEnum fromValue(String value) {
        for (UserTypeEnum type : UserTypeEnum.values()) {
            if (type.getValue().equals(value)) {
                return type;
            }
        }
        throw new IllegalArgumentException("未知的用户类型: " + value);
    }

    @Override
    public String toString() {
        return value;
    }
} 